commonlibsse_ng\re\e/
ExtraCount.rs1use crate::re::BSExtraData::{BSExtraData, DerivedBSExtraData};
3use crate::re::ExtraDataType::ExtraDataType;
4use crate::re::offsets_rtti::RTTI_ExtraCount;
5use crate::re::offsets_vtable::VTABLE_ExtraCount;
6use crate::rel::id::VariantID;
7
8#[repr(C)]
18pub struct ExtraCount {
19 pub __base: BSExtraData,
21
22 pub count: i16,
25
26 pub pad12: u16,
29
30 pub pad14: i32,
33}
34
35const _: () = {
36 assert!(core::mem::offset_of!(ExtraCount, __base) == 0x0);
37 assert!(core::mem::offset_of!(ExtraCount, count) == 0x10);
38 assert!(core::mem::offset_of!(ExtraCount, pad12) == 0x12);
39 assert!(core::mem::offset_of!(ExtraCount, pad14) == 0x14);
40 assert!(core::mem::size_of::<ExtraCount>() == 0x18);
41};
42
43impl Default for ExtraCount {
44 #[inline]
45 fn default() -> Self {
46 Self::new()
47 }
48}
49
50impl DerivedBSExtraData for ExtraCount {
51 #[inline]
52 fn get_extra_data(&self) -> &BSExtraData {
53 &self.__base
54 }
55
56 #[inline]
57 fn get_extra_data_type() -> ExtraDataType {
58 Self::EXTRA_DATA_TYPE
59 }
60}
61
62impl ExtraCount {
63 pub const RTTI: VariantID = RTTI_ExtraCount;
65
66 pub const VTABLE: [VariantID; 1] = VTABLE_ExtraCount;
68
69 pub const EXTRA_DATA_TYPE: ExtraDataType = ExtraDataType::Count;
71
72 #[inline]
74 pub const fn new() -> Self {
75 Self { __base: BSExtraData::new(), count: 0, pad12: 0, pad14: 0 }
76 }
77
78 #[inline]
80 pub const fn from_count(count: i16) -> Self {
81 Self { __base: BSExtraData::new(), count, pad12: 0, pad14: 0 }
82 }
83
84 #[inline]
86 pub const fn get_type(&self) -> ExtraDataType {
87 ExtraDataType::Count
88 }
89
90 #[inline]
92 pub const fn is_not_equal(&self, rhs: &Self) -> bool {
93 self.count != rhs.count
94 }
95}
96
97#[repr(C)]
101pub struct ExtraCountVtbl {
102 pub CxxDrop: fn(this: &mut ExtraCount),
104
105 pub GetType: fn(this: &ExtraCount) -> ExtraDataType,
107
108 pub IsNotEqual: fn(this: &ExtraCount, rhs: &ExtraCount) -> bool,
110}
111
112impl Default for ExtraCountVtbl {
113 #[inline]
114 fn default() -> Self {
115 Self::new()
116 }
117}
118
119impl ExtraCountVtbl {
120 pub const fn new() -> Self {
122 const fn CxxDrop(_this: &mut ExtraCount) {}
123
124 const fn GetType(_this: &ExtraCount) -> ExtraDataType {
125 ExtraCount::EXTRA_DATA_TYPE
126 }
127
128 const fn IsNotEqual(this: &ExtraCount, rhs: &ExtraCount) -> bool {
129 this.count != rhs.count
130 }
131
132 Self { CxxDrop, GetType, IsNotEqual }
133 }
134}